密码学 - 学习导航
Table of Contents
Table of Contents
2026-11-05 期中范围更新:教材第 1 至 7 章(止于 RSA)。
建议依序研读:第1至2章基础解析 第3至5章对称密码解析 第6至7章数论与RSA解析,并在 31道重点课后习题详解 中集中演练。
一、期中核心复习路线与知识索引
本次期中考查重点截止于教材第 7 章(RSA 密码体制)。前三篇系统梳理底层机制、代数证明与标准算例;第四篇对全部 31 道指定课后题提供详尽的手算推演与考点辨析。
| 学习次序 | 核心知识模块解析 | 核心考点与技能掌握 |
|---|---|---|
| 1 | 第1至2章:古典密码、序列密码与LFSR | 掌握单表代换统计分析、同余剩余类与模逆判据、一次一密(OTP)条件及 LFSR 状态环周期推导 |
| 2 | 第3至5章:DES、AES与操作模式 | 证明 Feistel 网络可逆性、推导 DES 首轮位数据流通路、掌握 有限域代数手算与工作模式攻击 |
| 3 | 第6至7章:数论工具与RSA全流程 | 掌握扩展欧几里得(EEA)求模逆、平方-乘快速模幂、RSA 密钥生成、双模数规范及全域正确性证明 |
| 4 | 前7章期中指定课后题详解 | 针对 31 道指定典型题逐题给出已知参量、代数模型、逐步推导、最终结论与易错陷阱 |
指定典型习题清单(31 题)
- 第1章: 1.1(单表替换)、1.2(移位密码)、1.5(同余等价类)、1.7(环与乘法逆元表)、1.9(模幂与离散对数)。
- 第2章: 2.1 仅第(1)(2)问(序列密码)、2.5(LFSR 输出序列)、2.8(四位 LFSR 状态环分解)。
- 第3章: 3.1(S盒查表)、3.3(DES首轮推导)、3.4(子密钥位影响)、3.5(单比特雪崩效应)、3.6(弱密钥)、3.9(DES 穷举复杂度)。
- 第4章: 4.4(有限域加法)、4.5(有限域模乘)、4.6(不可约多项式约简)、4.7(有限域乘法逆元)。
- 第5章: 5.1(ECB/CBC 差错传播)、5.2(IV 泄露与密钥搜索)、5.3(CBC 缺少 IV 解密)、5.5(OFB 密钥流重用)、5.16(DESA 白化掩码消去)。
- 第6章: 6.3(对称密钥组合数)、6.5(辗转相除法)、6.6(扩展欧几里得求模逆)、6.10(仿射密码模逆求解)。
- 第7章: 7.1(欧拉函数 )、7.2(RSA 密钥对生成判定)、7.3(快速模幂与加解密验证)、7.11(小模数质因数分解攻击)。
下方保留全书知识图谱以助宏观理解。第 8 章以后的 Diffie-Hellman、ECC 椭圆曲线、散列函数、数字签名与 PKI 信任协议属于后续全书拓展,暂不纳入本次前 7 章期中主线。当前各复习模块以上表为准。
一、为什么需要重新整合这套笔记
很多时候学密码学容易陷入两种极端:要么一上来就掉进抽象数论和复杂的公式推导里,背了一堆欧拉定理、有限域多项式,却不知道在实际网络中到底用在哪里;要么直接去调 OpenSSL 或 Web Crypto API,把 encrypt() 当成万能黑盒,误以为“加密了就安全”,结果在协议设计时把缺少认证的密文、复用 IV 的 CTR 模式、甚至裸奔的教科书 RSA 直接送上了生产环境。
密码学不是孤立的数学拼盘,而是一套严密的对抗性工程系统。它的终极目标,是在完全不可信、充满敌意(窃听、篡改、重放、冒充)的公共信道上,构建起可信的安全通信通道。
为了避免“每章记几页速记卡片、知识点支离破碎”的问题,本系列笔记参考 Christof Paar 的经典教材《深入浅出密码学——常用加密技术原理与应用》(Understanding Cryptography),将全书 13 章内容与实际网络协议经验深度融合,重构为 4 大核心主题篇 + 1 篇综合复习与考题库 的体系化大专题。
这份本地 PDF 的正文书内第 1 页对应 PDF 第 14 页;下表及各篇中,PDF 页序 = 书内页码 + 13。PDF 页序从整个文件第一页算起,引用时不要与书页底部数字混用。
二、全景知识图谱与阅读主线
现代密码学围绕三个最核心的问题展开:
- 通信内容如何保密?(防窃听 对称加密、流密码、分组密码与工作模式)
- 消息如何防篡改与防伪造?(完整性与防抵赖 哈希函数、消息认证码 MAC、数字签名)
- 互不相识的双方如何建立信任并共享秘密?(身份与密钥管理 数论陷门、公钥加密、DH 密钥协商、KDC、PKI/CA 与 TLS 协议)
前提:双方已有可用的秘密密钥。
DH/ECDH 产生共享秘密;再经 KDF 派生具体用途的密钥。交换过程还要认证。
散列压缩消息,但单独一个公开摘要不能抵抗主动替换。MAC 依赖共享秘密;签名可用公钥验证。
先建立可追溯的信任关系,再核验本次协议中的持钥证明。
证书链与签名认证服务器;临时 ECDHE 建立秘密;HKDF 派生密钥;Finished 确认握手;AEAD 保护应用数据。重放与消息顺序还需要协议状态处理。
阅读时始终追问三件事:谁知道这份数据?谁可以修改它?接收方凭什么接受它?各篇图解中的“公开 / 秘密 / 错误影响”均有文字标记。
三、专题笔记目录与核心问题对照
| 专题笔记 | 涵盖教材范围 | 解决的核心问题 | 核心机制与考点演练 |
|---|---|---|---|
| 1. 基础概念与对称密码 | 第 1、2、3、4、5 章(PDF 第 14—153 页) | 在不可信信道上,如何以极高吞吐率保密传输海量数据?算法如何对抗统计分析与代数差分攻击? | 柯克霍夫原则、四种攻击模型、OTP 完美保密与密钥流复用、LFSR 破译原理、Feistel 网络可逆性证明、DES 轮函数与 S 盒、 有限域代数与 xtime、AES 四大轮变换、ECB 企鹅图缺陷、CBC/CTR 模式、Padding Oracle 攻击、GCM 认证加密。 |
| 2. 公钥密码与数论基础(未发布的全书草稿) | 第 1、6、7、8、9 章(PDF 第 14—39、154—257 页) | 在没有预先共享密钥的陌生人之间,如何利用单向陷门函数实现秘密传递? | 扩展欧几里得求逆元、费马小定理与欧拉定理、快速幂平方乘、CRT 中国剩余定理加速、Miller-Rabin 素性测试、RSA 密钥生成与正确性严格证明、教科书 RSA 的确定性与同态攻击面、RSA-OAEP、离散对数与 Diffie-Hellman 密钥协商、椭圆曲线 Weierstrass 方程与群加法法则、标量乘法与 ECDH。 |
| 3. 散列函数、消息认证与数字签名(未发布的全书草稿) | 第 10、11、12 章(PDF 第 258—325 页) | 如何证明消息未被篡改,且不可抵赖地证明消息由特定发送方生成? | 散列三性质(抗第一原像、第二原像、碰撞抗性)、生日攻击与生日悖论数学证明、Merkle-Damgård 结构与长度扩展攻击、SHA-1 结构与退役演进、MAC 与数字签名的根本区别、HMAC 双层嵌套证明、CBC-MAC 长度欺骗反例、RSA 签名与 PSS、ElGamal 签名、DSA 与 ECDSA 签名及验证全推导、临时随机数复用泄漏私钥的数学推导(PS3 越狱漏洞)。 |
| 4. 密钥建立、信任体系与协议安全(未发布的全书草稿) | 第 13 章(PDF 第 326—351 页)与现代网络协议 | 现实网络中,如何识别公钥属于谁?如何防止历史通信在未来私钥泄露时被解密? | 密钥分发的 困境、KDF/HKDF 提取与扩展、集中式对称信任(KDC 与 Kerberos 票据/认证器/重放缓存)、公钥中间人调包攻击、PKI 与 X.509 数字证书链校验算法、CRL/OCSP/OCSP 封套、完美前向保密(PFS)原理(静态 RSA 交换 vs 临时 ECDHE)、现代 TLS 1.3 握手时序与全原语融合。 |
| 5. 复习与典型题(未发布的全书草稿) | 跨章节综合实战 | 检验是否能离开书本,独立进行数学推导、算法手算、漏洞构造与协议分析。 | 模逆 EEA 表格手算、平方乘快速模幂追踪、 乘法手算、AES 单列列混淆手算、RSA 密钥生成与 CRT 加速解密、ECC 点加与倍点手算、ECDSA 随机数复用反解私钥、CBC-MAC 长度伪造构造、中间相遇攻击复杂度计算、10 大典型概念陷阱深度辨析。 |
四、学习方法论:“四栏分析法”
学习任何一个密码学算法或安全协议时,不要死记代码片段。强烈建议拿出一张草稿纸,建立 四栏分析表:
| 栏目 | 核心考量 | 典型疑问 |
|---|---|---|
| 1. 公开量(Public) | 攻击者在信道上能完整截获哪些数据? | 密文 、公钥 、模数 、初始化向量 、Nonce、数字证书、签名值 。公开这些量为什么不会泄露秘密? |
| 2. 秘密量(Secret) | 绝对不能被攻击者获取的物理秘密是什么? | 私钥 、主密钥 、内部状态、ECDSA 临时随机数 、RSA 素因子 。一旦发生哪怕微弱的侧信道偏差,会引发什么连锁崩溃? |
| 3. 每次更新的量(Ephemeral) | 每一条消息、每一次连接必须变化的是什么? | 计数器 Counter、随机数 Nonce、临时 DH 私钥、会话密钥。如果这个量重复使用(Reuse),会发生什么灾难?(如流密码 ,ECDSA 算回私钥)。 |
| 4. 必须验证的条件(Invariants) | 接收方或验证方在相信结果前,必须检查哪些数学或逻辑条件? | 模逆互素条件 、椭圆曲线点是否在曲线上且非无穷远点、证书链签名与有效期、MAC 标签是否一致、解密填充是否有效。如果少检查一步会怎样?(如无效曲线攻击、填充预言机攻击)。 |
五、如何看待教材背景与现代标准演进
学习教材时,既要掌握经典算法的设计智慧(如 Feistel 网络、S 盒差分均匀性、欧拉定理),也要具备现代密码工程的辨析能力:
- 历史算法是教学标本:DES、3DES、MD5、SHA-1 在教材中占据重要篇幅,它们是理解现代算法前身和攻防博弈的绝佳案例。但在实际工程和新系统中,这些算法的可用范围需要按具体用途和标准判断;旧算法的教学价值不构成新系统选型依据。DES/3DES 与 SHA-1 的具体状态见相应正文。
- 裸公式 工业方案:教科书上的 RSA 加密()和裸签名()在数学上是对称的,但在工程上直接使用属于重大漏洞(乘法同态、小指数开根、存在性伪造)。现代密码学必须搭配填充标准(如 RSA-OAEP、RSA-PSS)。
- 保密 安全:过去人们常常只做单纯的加密(如 CBC 模式),现代密码工程的共识是:不带认证的加密是极其危险的,所有新建系统应优先采用认证加密(AEAD,如 AES-GCM、ChaCha20-Poly1305)。
各篇笔记已在对应小节明确标出“经典数学原理”与“现代工业标准边界”,帮助我们在扎实搞懂原理的同时,建立起现代实战视角。